#fun(*args,**kwargs)中的*args,**kwargs什么意思

#*args和**kwargs主要用于函数定义，你可以将不定数量的参数传递给一个函数，这里的不定的意思是：预先并不知道，函数使用者回传递多少个参数给你
#所以在这个场景下使用这两个关键字。*args是用来发送一个非键值对的可变数量的参数列表给一个函数。
def function(*args):
    print(args,type(args))

function(1)


def function(x,y,*args):
    print(x,y,args)

function(1,2,3,4,5)

def function(**kwargs):
    print(kwargs,type(kwargs))

function(a = 2)

def function(**kwargs):
    print(kwargs)

function(a = 1,b = 2,c = 3)

# 注意点：参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序，否则程序会报错
def function(arg,*args,**kwargs):
    print(arg,args,kwargs)

function(6,7,8,9,a = 1,b = 2,c = 3)